BFD-4351: Python Unified Root UV Workspace - #3089
Closed
jonathan-cantu-icf wants to merge 38 commits into
Closed
Conversation
jonathan-cantu-icf
requested review from
alex-dzeda,
aschey-forpeople,
malessi,
mel1-G and
mjburling
as code owners
April 7, 2026 02:19
jonathan-cantu-icf
force-pushed
the
feature/BFD-4351_Python-CI
branch
from
April 7, 2026 22:27
73319ae to
c604424
Compare
jonathan-cantu-icf
marked this pull request as draft
April 8, 2026 00:54
jonathan-cantu-icf
force-pushed
the
feature/BFD-4351_Python-CI
branch
from
April 9, 2026 00:55
8dbd3d9 to
b769c18
Compare
jonathan-cantu-icf
marked this pull request as ready for review
April 9, 2026 14:16
jonathan-cantu-icf
force-pushed
the
feature/BFD-4351_Python-CI
branch
from
April 10, 2026 19:40
2d317dc to
79e1d22
Compare
jonathan-cantu-icf
force-pushed
the
feature/BFD-4351_Python-CI
branch
from
April 15, 2026 14:27
7905cff to
505289f
Compare
jonathan-cantu-icf
changed the base branch from
master
to
epic/BFD-4669_Python-Workspace-Consolidation-AndCleanup
April 16, 2026 15:16
jonathan-cantu-icf
force-pushed
the
feature/BFD-4351_Python-CI
branch
from
April 16, 2026 18:00
505289f to
41ce7bb
Compare
jonathan-cantu-icf
force-pushed
the
feature/BFD-4351_Python-CI
branch
2 times, most recently
from
April 23, 2026 22:49
966db57 to
c0a8ed2
Compare
2 tasks
jonathan-cantu-icf
marked this pull request as draft
April 23, 2026 22:59
jonathan-cantu-icf
force-pushed
the
feature/BFD-4351_Python-CI
branch
4 times, most recently
from
April 29, 2026 22:22
cbc84fe to
91a2cbb
Compare
alex-dzeda
reviewed
Apr 30, 2026
# Conflicts: # apps/bfd-pipeline-idr/.python-version # apps/bfd-pipeline-idr/pyproject.toml # apps/bfd-pipeline-idr/uv.lock
… to get CI Actions to pass for 'uv run ruff check' on 2 particular projects (sftp-outbound-transfer-lambda and locust_tests).
… 'ruff' for 'sftp_outbound_transfer' without failure.
# Conflicts: # ops/services/04-idr-pipeline/lambda_src/consume-idr-events/pyproject.toml # ops/services/04-idr-pipeline/lambda_src/consume-idr-events/uv.lock # Conflicts: # apps/bfd-model-idr/uv.lock # Conflicts: # apps/bfd-pipeline-idr/pyproject.toml
…rkspace. # Conflicts: # apps/bfd-pipeline-idr/.python-version
… to get CI Actions to pass for 'uv run ruff check' on 2 particular projects (sftp-outbound-transfer-lambda and locust_tests).
… to get CI Actions to pass for 'uv run ruff check' on 2 particular projects (sftp-outbound-transfer-lambda and locust_tests).
# Conflicts: # uv.lock
jonathan-cantu-icf
force-pushed
the
feature/BFD-4351_Python-CI
branch
from
May 1, 2026 20:02
91a2cbb to
15666a5
Compare
jonathan-cantu-icf
marked this pull request as ready for review
May 4, 2026 22:35
|
aschey-forpeople
marked this pull request as draft
May 13, 2026 17:24
Contributor
|
Closing as stale |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




JIRA Ticket:
BFD-4351
What Does This PR Do?
This PR centralizes Python dependency and tooling configuration by introducing a uv workspace in apps. It consolidates Python version pinning, dev tools, and lockfile management, and updates CI to run checks at the workspace level. It also removes redundant per-project
.python-versionfiles.What Should Reviewers Watch For?
If you're reviewing this PR, please check for these things in particular:
opsproject job behaves as expected and didn’t accidentally get included/excluded.pyproject.tomland criticalopsprojects are compatible.Usage
From the
appsdirectory:Install all dependencies
Install dependencies for a specific project
cd apps/bfd-model-idr uv syncRun commands
Add a dependency to a project
Add a dev dependency
Configuration
Python Version
The Python version (3.13) is specified in:
pyproject.toml(requires-pythonfield)Tool Configuration
Tool configurations (ruff, pyright) are centralized in
apps/pyproject.tomlunder the[tool.*]sections. Individual projects can override these settings if needed.Dependency Groups
pyproject.tomllambda-run-locustfor locust_tests) are project specificCI/CD
The CI workflow (
.github/workflows/ci-python.yml) runs workspace level checks:ruff checkruff format --checkpyrightpytestPython and tool versions are pinned in the CI workflow to ensure consistency.
Migrating from Individual Projects
Previously, each Python project had its own:
.python-versionfileuv.lockfileWith the workspace setup:
.python-versionat repository rootuv.lockat workspace root (apps/uv.lock)Troubleshooting
Lock file out of sync
If you see errors about the lock file being out of sync, run:
Virtual environment issues
If you encounter virtual environment issues, remove and recreate:
Project not found
Make sure the project is listed in the
[tool.uv.workspace]section ofapps/pyproject.toml.What Security Implications Does This PR Have?
Please indicate if this PR does any of the following:
Adds any new software dependencies
No
Modifies any security controls
No
Adds new transmission or storage of data
No
Any other changes that could possibly affect security?
No
I have considered the above security implications as it relates to this PR. (If one or more of the above apply, it cannot be merged without the ISSO or team security engineer's (
@sb-benohe) approval.)I have created tests to sufficiently ensure the reliability of my code, if applicable. If this is a modification to an existing piece of code, I have audited the associated tests to ensure everything works as expected.
Validation
Have you fully verified and tested these changes? Is the acceptance criteria met? Please provide reproducible testing instructions, code snippets, or screenshots as applicable.
While tackling the ticket and pushing changes, I observed the state of things in GitHub CI. It would seem we are at the same state as we were before with the added benefit of an initial stab at one root level
uvworkspace.